package com.feri.rbacsys.service.impl;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.feri.rbacsys.dao.RoleDao;
import com.feri.rbacsys.dao.UserRoleDao;
import com.feri.rbacsys.entity.Role;
import com.feri.rbacsys.service.intf.RoleService;
import com.feri.rbacsys.util.AuthUtil;
import com.feri.rbacsys.vo.R;
import org.springframework.stereotype.Service;
import org.springframework.util.StringUtils;

import javax.annotation.Resource;

/**
 * 17.角色表(SysRole)表服务实现类
 *
 * @author makejava
 * @since 2023-03-26 10:40:28
 */
@Service
public class RoleServiceImpl implements RoleService {
    @Resource
    private RoleDao dao;
    @Resource
    private UserRoleDao userRoleDao;

    /**
     * 新增角色
     * @param name 角色名
     * @param description 角色描述
     * @return
     */
    @Override
    public R add(String name, String description) {
        if(StringUtils.hasLength(name)){
            if(dao.insert(new Role(name, description))>0){
                return R.ok();
            }
        }
        return R.fail();
    }

    /**
     * 查询所有角色
     * @return
     */
    @Override
    public R all() {
        return R.ok(dao.selectList(null));
    }

    /**
     * 修改当前登录用户的角色
     * @param rid
     * @return
     */
    @Override
    public R updateByUid(int rid) {
        //修改数据库
        if(userRoleDao.udpateByUid(AuthUtil.getUid(),rid)>0){
            return R.ok();
        }
        return R.fail();
    }

    @Override
    public R queryPage(int page, int size) {
        return R.ok(dao.selectPage(new Page<>(page,size),null));
    }

    @Override
    public R del(int rid) {
        return R.ok(dao.deleteById(rid));
    }

    @Override
    public R del(int rid) {
        return null;
    }
}

